#include <gtk/gtk.h>
#include <glade/glade.h>

/* Message object types */
#define M_NO_OBJECT			-1
#define M_BOOLEAN			0
#define M_STRING 			1
#define M_INT				2
#define M_DOUBLE			3
#define M_FLOAT				4
#define M_DOUBLE_ARR			5
#define M_INT_ARR 			6
#define M_STR_ARR			7
#define M_NULL				8

/* Meaasage constants */
#define MAX_MESSAGE_ARRAY_SIZE 		50

/* Widget name ond type identifier strings for GObject calls */
#define MAGIC_NAME		"##G_OBJECT##%%##%%##"
#define GOBJECT_WIDGET_TYPE	"GObject"

/*
* Called when creting app with user created widgets.
*/
void gtk_init_from_java			(int argc, char *argv[]);
/* 
* Parses glade xml doc, builds gui and calls gtk_main().
*/
void app_init				(const gchar *glade_file);
/*
* Gets window widget, shows it and calls gtk_main()
*/ 
void app_init_from_window		(const gchar *window_name);
/*
* Returns glade widget for name. 
*/
GtkWidget* get_glade_widget		(const char* w_name);
/* 
* Closes app by calling gtk_main_quit() 
*/
void app_shutdown			();
